package com.thb.pay.agent.service;

import com.thb.pay.agent.entity.AgentChannel;
import com.thb.pay.api.agent.vo.req.AgentChannelReq;
import com.thb.pay.api.agent.vo.resp.AgentChannelVo;
import com.thb.pay.api.payment.vo.req.AgentPassagePageReq;
import com.thb.pay.core.utils.PageResult;
import com.thb.pay.db.service.IBaseService;

import java.util.List;

/**
 * <p>
 * 代理商-通道表 服务类
 * </p>
 *
 * @author lucky
 * @since 2019-07-21
 */
public interface AgentChannelService extends IBaseService<AgentChannel> {
    /**
     * @param pageReq
     * @Description 分页获取代理商通道
     * @Author lucky
     * @data 2019/7/26 0:07
     */
    PageResult<AgentChannelVo> findPage(AgentPassagePageReq pageReq);


    /**
     * @param agentChannelReq 代理商通道信息
     * @Description 添加代理商通道信息
     * @Author lucky
     * @data 2019/9/25 23:02
     */
    void add(AgentChannelReq agentChannelReq);

    /**
     * @param agentChannelReq 代理商通道信息
     * @Description 修改代理商通道信息
     * @Author lucky
     * @data 2019/9/25 23:02
     */
    void update(AgentChannelReq agentChannelReq);

    /**
     * 获取代理商通道明细
     *
     * @param id 代理商通道id
     * @return
     */
    AgentChannelVo getById(Long id);

    /**
     * @param agentId   代理商id
     * @param productId 产品id
     * @Description 产品 + 代理商id 保证代理商通道唯一
     * @Author lucky
     * @data 2019/9/25 23:01
     */
    AgentChannelVo getByAgentIdAndProductId(Long agentId, Long productId);

    /**
     * @param conditionParam 条件信息
     * @Description 获取代理商通道信息列表
     * @Author lucky
     * @data 2019/9/25 23:32
     */
    List<AgentChannelVo> findAllList(AgentChannelReq conditionParam);

    /**
     * @param agentId 代理商id
     * @Description获取代理商所有的通道
     * @Author lucky
     * @data 2019/9/25 23:01
     */
    List<AgentChannelVo> findAllByAgentId(Long agentId);
}
